/**
 *
 * 基于bst实现的集合是个有序的集合
 * 基于hash表实现的集合是个无序的集合
 * -> 多重集合， 多重集合中的元素可以重复 => 二分搜索树记录数量实现 <=
 *
 * @param <E>
 */
public class BSTSet<E extends Comparable<E>> implements Set<E> {

    private BST<E> bst;

    public BSTSet() {
        bst = new BST<>();
    }

    @Override
    public void add(E elem) {
        bst.add(elem);
    }

    @Override
    public void remove(E elem) {
        bst.remove(elem);
    }

    @Override
    public boolean contains(E elem) {
        return bst.contains(elem);
    }

    @Override
    public int size() {
        return bst.size();
    }

    @Override
    public boolean isEmpty() {
        return bst.isEmpty();
    }

    @Override
    public String toString() {
        return "BSTSet: [" + bst.toString() + "]";
    }
}
